草庐IT

反射简化 JDBC ResultSet

全部标签

c# - 使用反射在 C# 中引发事件的单元测试

我想测试设置某个属性(或更一般地说,执行某些代码)是否会在我的对象上引发某个事件。在这方面,我的问题类似于UnittestingthataneventisraisedinC#,但我需要很多这样的测试,而且我讨厌样板文件。所以我正在寻找一个更通用的解决方案,使用反射。理想情况下,我想做这样的事情:[TestMethod]publicvoidTestWidth(){MyClassmyObject=newMyClass();AssertRaisesEvent(()=>{myObject.Width=42;},myObject,"WidthChanged");}对于AssertRaisesEv

c# - 使用包含另一个对象数组的对象的反射读取属性

如何在C#中使用反射读取包含数组类型元素的对象的属性。如果我有一个名为GetMyProperties的方法,并且我确定该对象是自定义类型,那么我该如何读取数组的属性和其中的值。IsCustomType是确定类型是否为自定义类型的方法。publicvoidGetMyProperties(objectobj){foreach(PropertyInfopinfoinobj.GetType().GetProperties()){if(!Helper.IsCustomType(pinfo.PropertyType)){strings=pinfo.GetValue(obj,null).ToStri

c# - 我可以通过反射/诊断从方法中获取调用实例吗?

有没有办法通过System.Reflection、System.Diagnostics或其他方式获取对调用静态方法的实际实例的引用,而不将其传递给方法本身?例如,沿着这些线的东西classA{publicvoidDoSomething(){StaticClass.ExecuteMethod();}}classB{publicvoidDoSomething(){SomeOtherClass.ExecuteMethod();}}publicclassSomeOtherClass{publicstaticvoidExecuteMethod(){//ReturnsaninstanceofAif

c# - 使用反射和 C# 调用静态方法时遇到问题

我有这两个类:Item:BusinessBasewhereT:Item{publicstaticTNewItem(){//somecodehere}}Video:Item{}现在我想使用反射调用类Video上的NewItem()方法。当我尝试这样做时:MethodInfoinf=typeof(Video).GetMethod("NewItem",BindingFlags.Static);执行此行后的对象inf仍然为空。我可以在Video类上调用静态NewItem()方法吗? 最佳答案 您需要指定BindingFlags.Public

c# - 使用反射访问对象中结构的字段

我正在尝试使用包含struct的反射(最终在编译时未知)object。我已经达到TypedReference.MakeTypedReference但我碰壁了。这是我的类和结构publicclassMyObject{publicintId;publicMoneyAmount;}publicstructMoney{publicintVaule;publicstringCode;}这里是我如何尝试使用反射在MyObject中设置“金额”的“代码”。正如我上面提到的,我正在寻找一种在编译时不知道这些类型的解决方案(那太容易了!)这是我目前的代码(我使用[0]、[1]使代码更简单)varobj=

C# "Method not found"未使用反射的运行时异常

我在获取上述异常时遇到问题。我有一个相对简单的结构,分为两个dll。第一个包含一个IEntityService,IEntity,具有基本的实现。第二个包含实际的实现和接口(interface)。所以有一个实现IEntityService的IMachine服务和实现IEntityService和EntityService的MachineService。结果集合(实体加服务)也会发生类似的情况。此外,服务(机器和结果)是部分类/接口(interface),其中一个类是自动生成的。现在,在其中一台ResultMachine中,我试图获得一台机器,如果它不存在,我将创建它并保存。但是,当我尝试

C# 代码简化查询 : The Null Container and the Foreach Loop

我经常有这样的代码:if(itm!=null){foreach(typexinitm.subItems()){//dostuff}}//domorestuff在省略//domorestuff的情况下,很容易避免额外的foreach循环。通过使用适当的命令退出作用域(根据发生的情况,这通常意味着return语句或continue语句)。这种类型的东西往往会导致箭头代码。我目前有几种方法来处理这个问题:使用itm=itm==null这样的代码?itm.subItems():空数组允许箭头代码使用goto使用邪恶的范围黑客(将整个事情,所有的if语句包装在一个范围内,然后突破它)。在我看来,

c# - 通过反射仅获取当前类(class)成员

假设这段代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Reflection;namespaceTestFunctionality{classProgram{staticvoidMain(string[]args){//System.Reflection.Assembly.GetExecutingAssembly().LocationAssemblyassembly=Assembly.LoadF

c# - 如何通过反射获取属性的 DisplayAttribute?

我有一个像这样的Helper方法来获取PropertyName(试图避免使用魔法字符串)publicstaticstringGetPropertyName(Expression>expression){varbody=(MemberExpression)expression.Body;returnbody.Member.Name;}但是有时我的PropertyNames也没有很好地命名。所以我宁愿使用DisplayAttribute。[Display(Name="LastName")]publicstringLastname{get;set;}请注意我使用的是Silverlight4.

c# - 如何使用反射获取当前项目中的所有类?

这个问题在这里已经有了答案:C#:ListAllClassesinAssembly(2个答案)关闭9年前。如何使用反射列出当前项目(程序集?)中的所有类?谢谢。